import { IPSAppDEField } from './ipsapp-defield';
import { IPSAppDEMethodDTO } from './ipsapp-demethod-dto';
import { IPSDEMethodInput } from '../../dataentity/service/ipsdemethod-input';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSAppDEMethodInput
 */
export interface IPSAppDEMethodInput extends IPSDEMethodInput {
  /**
   * 输入主键属性
   *
   * @type {IPSAppDEField}
   */
  getKeyPSAppDEField(): IPSAppDEField | null;

  /**
   * 输入主键属性
   *
   * @type {IPSAppDEField}
   */
  get keyPSAppDEField(): IPSAppDEField | null;

  /**
   * 输入主键属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getKeyPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 输入DTO对象
   *
   * @type {IPSAppDEMethodDTO}
   */
  getPSAppDEMethodDTO(): IPSAppDEMethodDTO | null;

  /**
   * 输入DTO对象
   *
   * @type {IPSAppDEMethodDTO}
   */
  get psAppDEMethodDTO(): IPSAppDEMethodDTO | null;

  /**
   * 输入DTO对象（必须存在）
   *
   * @type {IPSAppDEMethodDTO}
   */
  getPSAppDEMethodDTOMust(): IPSAppDEMethodDTO;

  /**
   * 输入类型
   * @description 值模式 [实体方法输入类型] {NONE：没有输入、 KEYFIELD：主键属性、 KEYFIELDS：主键属性集合、 DTO：DTO对象、 DTOS：DTO对象集合、 FILTER：搜索过滤对象、 UNKNOWN：未知、 USER：用户自定义、 USER2：用户自定义2 }
   * @type {( string | 'NONE' | 'KEYFIELD' | 'KEYFIELDS' | 'DTO' | 'DTOS' | 'FILTER' | 'UNKNOWN' | 'USER' | 'USER2')}
   */
  type: string | 'NONE' | 'KEYFIELD' | 'KEYFIELDS' | 'DTO' | 'DTOS' | 'FILTER' | 'UNKNOWN' | 'USER' | 'USER2';

  /**
   * 同时为结果输出
   * @type {boolean}
   * @default false
   */
  output: boolean;
}
